package it.fantacalcio.struts.form;

import it.fantacalcio.model.Squadra;
import it.fantacalcio.spring.service.MyServiceFactory;
import it.fantacalcio.utility.UtilDate;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class PartitaForm extends ActionForm {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Long id;
	private Date data;
	private String dataString;
	private Float puntiInCasa;
	private Float puntiFuoriCasa;
	private Integer golInCasa;
	private Integer golFuoriCasa;
	private Long idSquadra;
	private Long idSquadraInCasa;
	private Long idSquadraFuoriCasa;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	
	public Date getData() {
		return data;
	}
	public void setData(Date data) {
		this.data = data;
		if(data != null){
			this.dataString = UtilDate.dateToString(data, "dd/MM/yyyy");
		}
		System.out.println("setDate: " + this.data + ", " + this.dataString);
	}
	
	public String getDataString() {
		return dataString;
	}
	public void setDataString(String dataString) {
		this.dataString = dataString;
		if(dataString != null && !dataString.equals("")){
			this.data = UtilDate.stringToDate2(dataString);
		}
		System.out.println("setdataString: " + this.dataString + ", " + this.data);
	}
	
	public Float getPuntiInCasa() {
		return puntiInCasa;
	}
	public void setPuntiInCasa(Float puntiInCasa) {
		this.puntiInCasa = puntiInCasa;
	}
	
	public Float getPuntiFuoriCasa() {
		return puntiFuoriCasa;
	}
	public void setPuntiFuoriCasa(Float puntiFuoriCasa) {
		this.puntiFuoriCasa = puntiFuoriCasa;
	}
	
	public Integer getGolInCasa() {
		return golInCasa;
	}
	public void setGolInCasa(Integer golInCasa) {
		this.golInCasa = golInCasa;
	}
	
	public Integer getGolFuoriCasa() {
		return golFuoriCasa;
	}
	public void setGolFuoriCasa(Integer golFuoriCasa) {
		this.golFuoriCasa = golFuoriCasa;
	}
	
	public Long getIdSquadra() {
		return idSquadra;
	}
	public void setIdSquadra(Long idSquadra) {
		this.idSquadra = idSquadra;
	}
	
	public Long getIdSquadraInCasa() {
		return idSquadraInCasa;
	}
	public void setIdSquadraInCasa(Long idSquadraInCasa) {
		this.idSquadraInCasa = idSquadraInCasa;
	}
	
	public Long getIdSquadraFuoriCasa() {
		return idSquadraFuoriCasa;
	}
	public void setIdSquadraFuoriCasa(Long idSquadraFuoriCasa) {
		this.idSquadraFuoriCasa = idSquadraFuoriCasa;
	}
	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		
		ActionErrors errors = new ActionErrors();
		
		if(idSquadraFuoriCasa == null || idSquadraFuoriCasa < 1){
			errors.add("squadraFuoriCasa", new ActionMessage("errors.partita.squadraFuoriCasa.non_selezionato"));
		}
		if(idSquadraInCasa == null || idSquadraInCasa < 1){
			errors.add("squadraInCasa", new ActionMessage("errors.partita.squadraInCasa.non_selezionata"));
		}
		if(data == null || data.equals("")){
			errors.add("data", new ActionMessage("errors.partita.data.non_selezionata"));
		}
		
		List<Squadra> listaSquadra=new ArrayList<Squadra>();
		if(errors.size()>0){
			try{
				listaSquadra=MyServiceFactory.getSquadraService().list();			
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
		request.setAttribute("listaSquadra", listaSquadra);
		
		return errors;
	}
	
}
